7 Conclusion 6 Experimental Results 5.2 Moving a Load across Multiple Stores
نویسندگان
چکیده
In many code streams, a load instruction is on a critical path and is followed by a chain of operations depending on the load. The execution of a load from memory often yields a long latency on a modern microprocessor. To compensate for this latency and reduce the length of the critical path, one way is to trigger the load as early as possible in a non-blocking way. However, to preserve the semantics of a program on a conventional architecture, a load from a memory location must be executed after all of the corresponding aliasing stores potentially writing to this very location. This constraint often hampers an instruction scheduler to move the load sufficiently early to reduce the critical path length. This aliasing problem can be greatly alleviated with an architectural support of data speculation, which allows to speculate on a load and other instructions using the result of the load, that is to initiate a load before being sure all of the previous aliasing stores have completed. Clearly, when the aliasing does occur, the result of the load has to be reloaded and other speculated instructions have to be re-executed, thus incurring a penalty. Therefore, the benefit of data speculation greatly depends on the probability of such an alias that actually occurs. This paper presents a general probabilistic memory disambiguation (PMD) framework to automatically derive the symbolic probabilities of the aliases among array references in application programs at compile time. We show how to apply this framework to build a profitability cost model to be incorporated into a compiler for data speculation. We also provide a set of heuristics to quickly approximate the aliasing probabilities in many common cases. Experimental results show that data speculation aided with the PMD framework is an effective way to maximize program performance.
منابع مشابه
Predictive Power of Involvement Load Hypothesis and Technique Feature Analysis across L2 Vocabulary Learning Tasks
Involvement Load Hypothesis (ILH) and Technique Feature Analysis (TFA) are two frameworks which operationalize depth of processing of a vocabulary learning task. However, there is dearth of research comparing the predictive power of the ILH and the TFA across second language (L2) vocabulary learning tasks. The present study, therefore, aimed to examine this issue across four vocabulary learning...
متن کاملPredictive Power of Involvement Load Hypothesis and Technique Feature Analysis across L2 Vocabulary Learning Tasks
Involvement Load Hypothesis (ILH) and Technique Feature Analysis (TFA) are two frameworks which operationalize depth of processing of a vocabulary learning task. However, there is dearth of research comparing the predictive power of the ILH and the TFA across second language (L2) vocabulary learning tasks. The present study, therefore, aimed to examine this issue across four vocabulary learning...
متن کاملLoad balancing for Key Value Data Stores
In the last decade new scalable data stores have emerged in order to process and store the increasing amount of data that is produced every day. These data stores are inherently distributed to adapt to the increasing load and generated data. HBase is one of such data stores built after Google BigTable that stores large tables (hundreds of millions of rows) where data is stored sorted by key. A ...
متن کاملCreating Partnership Organizations
1. Unpacking the Patriarchy and Moving Into Partnership 2. The Partnership Alternative 2.1 The Shadow Side of Partnership 2.2 Fear of Change 2.3 Strategies for Organizational Change 3. Organizational Partnerships: The Living Proof 4. The Patterns and Paradox of Power 5. Leadership in a Partnership Context 5.1 Moving Beyond the Hero-Leader 5.2 Partnering Behaviors and Design Principles 6. Buildi...
متن کاملKey-value store cluster with programmability in NICs and switches CSE551 Final Report
Today’s data center applications such as key-value stores generally run on multiple servers and on multiple cores for each sever in order to be able to handle the request loads. As a consequence, a steering and load-balancing decision needs to be made for each request about which server and core it should be handled by. Table 1 provides an overview of common approaches to load balancing, and ho...
متن کامل